package com.ruoyi.common.base.user.mapper;

import com.ruoyi.common.base.user.domain.Agent;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;

/**
 * 代理信息Mapper接口
 *
 * @author gdk
 * @date 2023-05-27
 */
public interface AgentMapper {
    /**
     * 查询代理信息
     *
     * @param id 代理信息主键
     * @return 代理信息
     */
    public Agent selectAgentById(Long id);

    /**
     * 查询代理信息列表
     *
     * @param agent 代理信息
     * @return 代理信息集合
     */
    public List<Agent> selectAgentList(Agent agent);

    /**
     * 新增代理信息
     *
     * @param agent 代理信息
     * @return 结果
     */
    public int insertAgent(Agent agent);

    /**
     * 修改代理信息
     *
     * @param agent 代理信息
     * @return 结果
     */
    public int updateAgent(Agent agent);

    /**
     * 删除代理信息
     *
     * @param id 代理信息主键
     * @return 结果
     */
    public int deleteAgentById(Long id);

    /**
     * 批量删除代理信息
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteAgentByIds(Long[] ids);

    /**
     * 单条
     *
     * @param condition 条件
     * @return {@link Agent}
     * @author gdk
     * @since 2023/5/27 14:15
     */
    Agent getOne(Agent condition);

    /**
     * 冻结
     *
     * @param userId 用户id
     * @param amount 金额
     * @return {@link int}
     * @author gdk
     * @since 2023/5/28 13:28
     */
    int frozen(@Param("userId") Long userId,
               @Param("amount") BigDecimal amount);

    /**
     * 提现
     *
     * @param userId 用户id
     * @param amount 金额
     * @return {@link int}
     * @author gdk
     * @since 2023/5/29 09:56
     */
    int withdrawal(@Param("userId") String userId,
                   @Param("amount") BigDecimal amount);

    /**
     * 增加额度
     *
     * @param userId 用户id
     * @param amount 金额
     * @return {@link int}
     * @author gdk
     * @since 2023/5/31 17:39
     */
    int increase(@Param("userId") Long userId,
                 @Param("amount") BigDecimal amount);

}
